<?php
$m = new Moneda();
$m->ed(6, array(1,4));
class Moneda{
    function debug($ar){
        echo '<pre>';
        print_r($ar);
        echo '</pre>';
    }
    
    function ed($c, $moneda){
        //int[][] $tabla = new int[$moneda.length][$c];
        $tabla = array();
		$n = count($moneda);
		//int $j,$i;
		for($i = 0; $i<$n; $i++){
			$tabla[$i][0] = 0;
		}
        for($j = 0; $j<$c+1; $j++){
			$tabla[0][$j] = 99;
		}
        $this->debug($tabla);
		for($i = 1; $i <= count($moneda); $i++){
			for($j = 1; $j <= $c; $j++){
			
				if($i == 1 && $moneda[$i-1]>$j-1){
					$tabla[$i-1][$j-1] = 9999; // va iniciando las columnas cuando la fila es 0				
				}else{
					if($i == 1){
						$tabla[$i-1][$j-1] = 1 + $tabla[0][ ($j-1) - $moneda[$i-1]];
					}
					else{
						if($j < $moneda[$i-1]){
							$tabla[$i][$j] = $tabla[$i-1][$j];
							
						}else{
                            // este es igual!!
							$tabla[$i][$j]= min($tabla[$i-1][$j], $tabla[$i][$j-$moneda[$i-1]]+1);
						
						}
					}
					
				}
			}
		}
        $this->debug($tabla);
		return $tabla;
    }
    public function min($a, $b){
		if($a<$b)
			return $a;
	
		else 
			return $b;
	}
}
?>
